package com.molichuxing.services.business.dto.response;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Map;

import com.molichuxing.framework.dto.ResponseRootDto;
import com.molichuxing.services.property.PaymentBusinessTypeEnum;
import com.molichuxing.services.property.PaymentCostTypeEnum;
import com.molichuxing.services.property.PaymentDetailTypeEnum;
import com.molichuxing.services.property.PaymentPayWayEnum;
import com.molichuxing.services.property.PaymentStatusEnum;

import lombok.Data;

/**
 * 用户支付记录biz dto
 * 
 * @author zoumingyu
 * @date 2019年10月10日
 *
 */
@Data
public class PaymentRecordBizDto extends ResponseRootDto {
	private static final long serialVersionUID = -501257917751918419L;

	/**
	 * 支付id
	 */
	private Integer paymentId;

	/**
	 * 用户id（订单类型为经销商时存经销商id） user_id
	 */
	private Integer userId;

	/**
	 * 订单编号 order_code
	 */
	private Long orderCode;

	/**
	 * 排期id（订阅订单、专属全款订单、加购里程订单为0） schedule_id
	 */
	private Integer scheduleId;

	/**
	 * 付款流水号（第三方支付订单号） pay_number
	 */
	private String payNumber;

	/**
	 * 支付方式( 11：智能终端-微信， 12：智能终端-支付宝， 13：智能终端-pos机，14：智能终端-密码键盘，21：微信-H5，
	 * 22：微信-APP，23：微信-公众号，24：微信-扫码，25：微信-小程序，31：支付宝-H5，32：支付宝-APP，41:
	 * 线下支付，51：银联-H5，52：银联-APP) pay_way
	 */
	private PaymentPayWayEnum payWay;

	/**
	 * 支付金额 pay_amount
	 */
	private BigDecimal payAmount;

	/**
	 * 支付成功时间 pay_time
	 */
	private LocalDateTime payTime;

	/**
	 * 支付状态(0：待支付，1:成功，2：失败) pay_status
	 */
	private PaymentStatusEnum payStatus;

	/**
	 * 第三方流水号 third_pay_number
	 */
	private String thirdPayNumber;

	/**
	 * 备注 remark
	 */
	private String remark;

	/**
	 * 业务类型（1：订阅，2：专属：3：经销商） business_type
	 */
	private PaymentBusinessTypeEnum businessType;
	
	/**
	 * 费用类型（1：订购，2：加购，3：结算，4：还款） cost_type
	 */
	private PaymentCostTypeEnum costType;

	private Map<PaymentDetailTypeEnum, PaymentDetailBizDto> paymentDetailMap;
}
